ããã³ããšã³ãéçºè åãã®ãŠã§ãã¢ã¯ã»ã·ããªãã£ïŒa11yïŒã«é¢ããå æ¬çãªã¬ã€ããäžçäžã®ãŠãŒã¶ãŒã®ããã«ãã€ã³ã¯ã«ãŒã·ãã§ã¢ã¯ã»ã·ãã«ãªãŠã§ãäœéšãæ§ç¯ããããã®ååãæè¡ããã¹ããã©ã¯ãã£ã¹ã解説ããŸãã
ãŠã§ãã¢ã¯ã»ã·ããªãã£ïŒa11yïŒïŒããã³ããšã³ãéçºè ã®ããã®å®è·µã¬ã€ã
ãŠã§ãã¢ã¯ã»ã·ããªãã£ïŒa11yãšç¥ãããããšãå€ããaãšyã®éã«11æåããããšããïŒãšã¯ãé害ã®ãã人ã ãå©çšã§ãããŠã§ããµã€ãããŠã§ãã¢ããªã±ãŒã·ã§ã³ãèšèšã»éçºããå®è·µã®ããšã§ããããã«ã¯ãèŠèŠãèŽèŠãéåãèªç¥ãèšèªã«é害ã®ããå人ãå«ãŸããŸããã¢ã¯ã»ã·ãã«ãªãŠã§ããµã€ããæ§ç¯ããããšã¯ãåã«ã³ã³ãã©ã€ã¢ã³ã¹ïŒæ³ä»€éµå®ïŒã®åé¡ã ãã§ã¯ãããŸãããããã¯ãèœåããŠã§ããžã®ã¢ã¯ã»ã¹ã«äœ¿çšããæè¡ã«é¢ãããããã¹ãŠã®äººã®ããã«ã€ã³ã¯ã«ãŒã·ãã§å ¬å¹³ãªããžã¿ã«äœéšãåµé ããããšã§ãããŸããããå€ãã®ãªãŒãã£ãšã³ã¹ã«ãªãŒãããããã«ãäžå¯æ¬ ã§ããäŸãã°ãè¯å¥œãªè²ã®ã³ã³ãã©ã¹ãã¯æãã倪éœå ã®äžã®ãŠãŒã¶ãŒã«æ©æµããããããæç¢ºãªã¬ã€ã¢ãŠãã¯èªç¥é害ã®ãã人ã ãåã«ãã«ãã¿ã¹ã¯ãè¡ã£ãŠãã人ã ãå©ããŸãã
ãŠã§ãã¢ã¯ã»ã·ããªãã£ã¯ãªãéèŠãïŒ
ãŠã§ãã¢ã¯ã»ã·ããªãã£ãåªå ãã¹ã説åŸåã®ããçç±ã¯ããã€ããããŸãã
- å«ççé æ ®ïŒèª°ãããªã³ã©ã€ã³ã®æ å ±ããµãŒãã¹ã«å¹³çã«ã¢ã¯ã»ã¹ããæš©å©ãæã£ãŠããŸããé害ã®ãã人ã ãããžã¿ã«ã®äžçããæé€ããããšã¯å·®å¥çã§ãã
- æ³çèŠä»¶ïŒå€ãã®åœãå°åã§ã¯ãç±³åœã®é害ãæã€ã¢ã¡ãªã«äººæ³ïŒADAïŒãã«ããã®ãªã³ã¿ãªãªå·é害è ã¢ã¯ã»ã·ããªãã£æ³ïŒAODAïŒã欧å·é£åã®æ¬§å·ã¢ã¯ã»ã·ããªãã£æ³ïŒEAAïŒãªã©ããŠã§ãã¢ã¯ã»ã·ããªãã£ã矩åä»ããæ³åŸãèŠå¶ããããŸããéµå®ããªãå Žåãæ³çæªçœ®ã«ã€ãªããå¯èœæ§ããããŸããäŸãã°ãäžéšã®æ³åã§ã¯ãã¢ã¯ã»ã·ãã«ã§ãªããŠã§ããµã€ãã¯èšŽèšã®å¯Ÿè±¡ãšãªãããšããããŸãã
- ãŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ã®åäžïŒã¢ã¯ã»ã·ããªãã£ã®ãã¹ããã©ã¯ãã£ã¹ã¯ãäžè¬çãªãŠãŒã¶ããªãã£ã®ååãšéãªãããšããããããŸãããŠã§ããµã€ããã¢ã¯ã»ã·ãã«ã«ããããšã¯ãéå®³ã®æç¡ã«ãããããããã¹ãŠã®ãŠãŒã¶ãŒã«ãšã£ãŠã®ãŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ãåäžãããããšãã§ããŸããäŸãã°ããã©ãŒã ãã£ãŒã«ãã«æç¢ºãªã©ãã«ãä»ããããšã¯ãèªç¥é害ã®ãããŠãŒã¶ãŒããåãã£ãŒã«ãã®ç®çãçŽ æ©ãçè§£ãããäœéãªã€ã³ã¿ãŒãããæ¥ç¶ã®ãŠãŒã¶ãŒã«å©çããããããŸãã
- ããåºããªãŒãã£ãšã³ã¹ãžã®ãªãŒãïŒäžç人å£ã®çŽ15%ãäœããã®é害ãæã£ãŠããŸãããŠã§ããµã€ããã¢ã¯ã»ã·ãã«ã«ããããšã§ãèãã倧ããªãªãŒãã£ãšã³ã¹ã«éæžãéãããšã«ãªããŸããããã¯ãããžãã¹ããšã³ã²ãŒãžã¡ã³ããã€ã³ãã¯ãã®å¢å ã«ã€ãªããå¯èœæ§ããããŸããWHOã¯ã10å人以äžã®äººã ãäœããã®åœ¢ã®é害ãšå ±ã«ç掻ããŠãããšæšå®ããŠããŸãã
- SEOäžã®ã¡ãªããïŒGoogleã®ãããªæ€çŽ¢ãšã³ãžã³ã¯ãæ§é ãè¯ããã»ãã³ãã£ãã¯ã§ããŠãŒã¶ãŒãã¬ã³ããªãŒãªãŠã§ããµã€ããåªå ããŸããé©åãªèŠåºãæ§é ã®äœ¿çšãç»åã®ä»£æ¿ããã¹ãã®æäŸãªã©ãå€ãã®ã¢ã¯ã»ã·ããªãã£ã®ãã¹ããã©ã¯ãã£ã¹ã¯ããŠã§ããµã€ãã®æ€çŽ¢ãšã³ãžã³æé©åïŒSEOïŒãåäžãããããšãã§ããŸãã
- ãã©ã³ãè©äŸ¡ã®åäžïŒã¢ã¯ã»ã·ããªãã£ãžã®ã³ãããã¡ã³ãã瀺ãããšã¯ããã©ã³ãã®è©äŸ¡ãé«ãã顧客ãšã®ä¿¡é Œãç¯ãããšãã§ããŸããæ¶è²»è ã¯ã瀟äŒç責任ãæãããã€ã³ã¯ã«ãŒã·ããªãã©ã³ãããŸããŸã奜ãããã«ãªã£ãŠããŸãã
ã¢ã¯ã»ã·ããªãã£ã®åºæºãšã¬ã€ãã©ã€ã³ãçè§£ãã
ãŠã§ãã¢ã¯ã»ã·ããªãã£ã®äž»èŠãªåºæºã¯ãWorld Wide Web ConsortiumïŒW3CïŒã«ãã£ãŠéçºããããŠã§ãã³ã³ãã³ãã»ã¢ã¯ã»ã·ããªãã£ã»ã¬ã€ãã©ã€ã³ïŒWCAGïŒã§ããWCAGã¯ããŠã§ãã³ã³ãã³ãã®ã¢ã¯ã»ã·ããªãã£ãè©äŸ¡ããããã«äœ¿çšã§ãããæ€èšŒå¯èœãªéæåºæºã®ã»ãããæäŸããŸããWCAGã¯åœéçã«èªç¥ãããŠãããäžçäžã®ã¢ã¯ã»ã·ããªãã£é¢é£æ³èŠã§ãã°ãã°åç §ãããŠããŸãã
WCAGã¯ããã°ãã°POURãšåŒã°ãã4ã€ã®ååãäžå¿ã«æ§æãããŠããŸãã
- ç¥èŠå¯èœïŒPerceivableïŒïŒæ å ±ããã³ãŠãŒã¶ãŒã€ã³ã¿ãŒãã§ãŒã¹ã®ã³ã³ããŒãã³ãã¯ããŠãŒã¶ãŒãç¥èŠã§ããæ¹æ³ã§æç€ºå¯èœã§ãªããã°ãªããŸãããããã¯ãéããã¹ãã³ã³ãã³ãã«ä»£æ¿ããã¹ããæäŸããããšããããªã«ãã£ãã·ã§ã³ãä»ããããšãååãªè²ã®ã³ã³ãã©ã¹ãã確ä¿ããããšãªã©ãæå³ããŸãã
- æäœå¯èœïŒOperableïŒïŒãŠãŒã¶ãŒã€ã³ã¿ãŒãã§ãŒã¹ã®ã³ã³ããŒãã³ãããã³ããã²ãŒã·ã§ã³ã¯ãæäœå¯èœã§ãªããã°ãªããŸãããããã«ã¯ããã¹ãŠã®æ©èœãããŒããŒãããå©çšã§ããããšã確èªããããšããŠãŒã¶ãŒãã³ã³ãã³ããèªãã ã䜿çšãããããã®ã«ååãªæéãæäŸããããšãçºäœãåŒãèµ·ããå¯èœæ§ã®ããã³ã³ãã³ããé¿ããããšãªã©ãå«ãŸããŸãã
- çè§£å¯èœïŒUnderstandableïŒïŒæ å ±ããã³ãŠãŒã¶ãŒã€ã³ã¿ãŒãã§ãŒã¹ã®æäœã¯ãçè§£å¯èœã§ãªããã°ãªããŸãããããã¯ãæç¢ºã§ç°¡æœãªèšèªã䜿çšããããšãæç€ºããã£ãŒãããã¯ãæäŸããããšããŠã§ããµã€ããäºæž¬å¯èœã§äžè²«æ§ãããããšã確èªããããšãªã©ãæå³ããŸãã
- å ç¢ïŒRobustïŒïŒã³ã³ãã³ãã¯ãæ¯æŽæè¡ãå«ãå€çš®å€æ§ãªãŠãŒã¶ãŒãšãŒãžã§ã³ãã«ãã£ãŠç¢ºå®ã«è§£éãããã®ã«ååå ç¢ã§ãªããã°ãªããŸãããããã«ã¯ãæå¹ãªHTMLãšARIA屿§ã䜿çšããããšãã³ã³ãã³ããç°ãªããã©ãŠã¶ãããã€ã¹ãšäºææ§ãããããšã確èªããããšãªã©ãå«ãŸããŸãã
WCAGã«ã¯ãAãAAãAAAã®3ã€ã®é©åã¬ãã«ããããŸããã¬ãã«Aã¯æãåºæ¬çãªã¢ã¯ã»ã·ããªãã£ã®ã¬ãã«ã§ãããã¬ãã«AAAã¯æãå æ¬çã§ããã»ãšãã©ã®çµç¹ã¯ãã¢ã¯ã»ã·ããªãã£ãšå®çšæ§ã®éã§è¯ããã©ã³ã¹ãæäŸããã¬ãã«AAãžã®é©åãç®æããŠããŸããå€ãã®æ³åŸãèŠå¶ãã¬ãã«AAãžã®é©åãèŠæ±ããŠããŸãã
ããã³ããšã³ãéçºè ã®ããã®å®è·µçãªãã¯ããã¯
以äžã«ãããã³ããšã³ãéçºè ããŠã§ããµã€ãããŠã§ãã¢ããªã±ãŒã·ã§ã³ã®ã¢ã¯ã»ã·ããªãã£ãåäžãããããã«äœ¿çšã§ããå®è·µçãªãã¯ããã¯ãããã€ã玹ä»ããŸãã
1. ã»ãã³ãã£ãã¯HTML
ã»ãã³ãã£ãã¯HTMLèŠçŽ ã®äœ¿çšã¯ãã¢ã¯ã»ã·ããªãã£ã«ãšã£ãŠéåžžã«éèŠã§ããã»ãã³ãã£ãã¯HTMLã¯ã³ã³ãã³ãã«æå³ãšæ§é ãäžããæ¯æŽæè¡ããããçè§£ãè§£éããããããŸãããã¹ãŠã®èŠçŽ ã«æ±çšçãª<div>ã<span>ã䜿çšãã代ããã«ã次ã®ãããªHTML5ã®ã»ãã³ãã£ãã¯èŠçŽ ã䜿çšããŠãã ããã
<header>ïŒææžãã»ã¯ã·ã§ã³ã®ããããŒã衚ããŸãã<nav>ïŒããã²ãŒã·ã§ã³ãªã³ã¯ã®ã»ã¯ã·ã§ã³ã衚ããŸãã<main>ïŒææžã®äž»èŠãªã³ã³ãã³ãã衚ããŸãã<article>ïŒææžãããŒãžãã¢ããªã±ãŒã·ã§ã³ããŸãã¯ãµã€ãå ã®èªå·±å®çµããæ§æç©ã衚ããŸãã<aside>ïŒææžã®äž»èŠãªã³ã³ãã³ãã«éæ¥çã«é¢é£ããã³ã³ãã³ãã衚ããŸãã<footer>ïŒææžãã»ã¯ã·ã§ã³ã®ããã¿ãŒã衚ããŸãã<section>ïŒã³ã³ãã³ãã®ããŒãå¥ã®ã°ã«ãŒãåãã衚ããŸãã
äŸïŒ
<header>
<h1>My Website</h1>
<nav>
<ul>
<li><a href="#">Home</a></li>
<li><a href="#">About</a></li>
<li><a href="#">Contact</a></li>
</ul>
</nav>
</header>
<main>
<article>
<h2>Article Title</h2>
<p>Article content here...</p>
</article>
</main>
<footer>
<p>© 2023 My Website</p>
</footer>
é©åãªèŠåºãã¬ãã«ïŒ<h1>ãã<h6>ïŒã䜿çšããããšããè«ççãªææžæ§é ãäœæããããã«äžå¯æ¬ ã§ããèŠåºãã䜿çšããŠã³ã³ãã³ããæŽçãããŠãŒã¶ãŒãããã²ãŒãããããããŠãã ããã<h1>ã¯ããŒãžã®ã¡ã€ã³ã¿ã€ãã«ã«äœ¿çšããããã«ç¶ãèŠåºãã¯æ
å ±ã®éå±€ãäœæããããã«äœ¿çšããå¿
èŠããããŸããèŠåºãã¬ãã«ãé£ã°ãããšïŒäŸïŒ<h2>ãã<h4>ãžïŒã¯ãã¹ã¯ãªãŒã³ãªãŒããŒã®ãŠãŒã¶ãŒãæ··ä¹±ãããå¯èœæ§ãããããé¿ããŠãã ããã
2. ç»åã®ä»£æ¿ããã¹ã
ãã¹ãŠã®ç»åã«ã¯ããã®å
å®¹ãšæ©èœã衚ãæå³ã®ãã代æ¿ããã¹ãïŒaltããã¹ãïŒãå¿
èŠã§ããaltããã¹ãã¯ãç»åãèŠãããšãã§ããªããŠãŒã¶ãŒã«ãã®æ
å ±ãäŒããããã«ã¹ã¯ãªãŒã³ãªãŒããŒã«ãã£ãŠäœ¿çšãããŸããç»åãçŽç²ã«è£
食çã§éèŠãªæ
å ±ãäŒããªãå Žåã¯ãalt屿§ã空æååïŒalt=""ïŒã«èšå®ããå¿
èŠããããŸãã
äŸïŒ
<img src="logo.png" alt="Company Logo">
<img src="decorative-pattern.png" alt="">
altããã¹ããæžãéã¯ã説æçãã€ç°¡æœã«ããŠãã ãããç»åãæäŸããæ¬è³ªçãªæ å ±ãäŒããããšã«éäžããŠãã ãããããã®ç»åããããã®åçããšãã£ããã¬ãŒãºã¯ãã¹ã¯ãªãŒã³ãªãŒããŒãéåžžãããç»åã§ããããšãã¢ããŠã³ã¹ããããã䜿çšãé¿ããŠãã ããã
ãã£ãŒããã°ã©ãã®ãããªè€éãªç»åã«ã€ããŠã¯ãåšå²ã®ããã¹ãã§ãã詳现ãªèª¬æãæäŸãããã<figure>ãš<figcaption>èŠçŽ ã䜿çšããããšãæ€èšããŠãã ããã
3. ããŒããŒãã¢ã¯ã»ã·ããªãã£
ãŠã§ããµã€ãäžã®ãã¹ãŠã®ã€ã³ã¿ã©ã¯ãã£ããªèŠçŽ ã¯ãããŒããŒãã䜿çšããŠã¢ã¯ã»ã¹ã§ããå¿
èŠããããŸããããã¯ãããŠã¹ãä»ã®ãã€ã³ãã£ã³ã°ããã€ã¹ã䜿çšã§ããªããŠãŒã¶ãŒã«ãšã£ãŠéåžžã«éèŠã§ãããŠãŒã¶ãŒãTabããŒã䜿çšããŠãŠã§ããµã€ããããã²ãŒãããEnterããŒãŸãã¯SpacebarããŒã䜿çšããŠèŠçŽ ãšå¯Ÿè©±ã§ããããšã確èªããŠãã ããã
ããŒãžäžã®èŠçŽ ã®ãã©ãŒã«ã¹é åºã«æ³šæããŠãã ããããã©ãŒã«ã¹é åºã¯ãã³ã³ãã³ããéããŠè«ççã§çŽæçãªãã¹ã«åŸãã¹ãã§ããtabindex屿§ã䜿çšããŠãã©ãŒã«ã¹é åºãå¶åŸ¡ã§ããŸãããäžè¬çã«ã¯HTMLå
ã®èŠçŽ ã®èªç¶ãªé åºã«é Œãã®ãæåã§ããtabindexã¯ãããã©ã«ãã®ãã©ãŒã«ã¹é åºã®åé¡ãä¿®æ£ããããã«ã®ã¿äœ¿çšããŠãã ããã
ãŠãŒã¶ãŒã«çŸåšã©ã®èŠçŽ ããã©ãŒã«ã¹ãããŠãããã瀺ãããã«ãèŠèŠçãªãã©ãŒã«ã¹ã€ã³ãžã±ãŒã¿ãæäŸããŠãã ããããã©ãŠã¶ã®ããã©ã«ãã®ãã©ãŒã«ã¹ã€ã³ãžã±ãŒã¿ã§ã¯äžååãªå ŽåããããããCSSã䜿çšããŠç¬èªã®ã¹ã¿ã€ãªã³ã°ã远å ããããšãæ€èšããŠãã ããããã©ãŒã«ã¹ã€ã³ãžã±ãŒã¿ãèæ¯ãšååãªã³ã³ãã©ã¹ããæã€ããšã確èªããŠãã ããã
äŸïŒ
/* CSS */
a:focus, button:focus {
outline: 2px solid blue;
outline-offset: 2px;
}
4. ARIA屿§
ARIAïŒAccessible Rich Internet ApplicationsïŒã¯ãæ¯æŽæè¡ã«è¿œå ã®ã»ãã³ãã£ãã¯æ å ±ãæäŸããããã«HTMLèŠçŽ ã«è¿œå ã§ãã屿§ã®ã»ããã§ããARIA屿§ã¯ãåçãªã³ã³ãã³ããè€éãªãŠã£ãžã§ããããã®ä»ã®ã€ã³ã¿ã©ã¯ãã£ããªèŠçŽ ã®ã¢ã¯ã»ã·ããªãã£ãåäžãããããã«äœ¿çšã§ããŸãã
äžè¬çãªARIA屿§ã«ã¯ä»¥äžã®ãããªãã®ããããŸãã
aria-labelïŒèŠçŽ ã«ããã¹ãã©ãã«ãæäŸããŸããaria-describedbyïŒèŠçŽ ã説æã«é¢é£ä»ããŸããaria-labelledbyïŒèŠçŽ ãã©ãã«ã«é¢é£ä»ããŸããaria-hiddenïŒæ¯æŽæè¡ããèŠçŽ ãé ããŸããaria-liveïŒèŠçŽ ã®ã³ã³ãã³ããåçã«æŽæ°ãããããšã瀺ããŸããroleïŒèŠçŽ ã®åœ¹å²ïŒäŸïŒbutton, checkbox, dialogïŒãå®çŸ©ããŸããaria-expandedïŒèŠçŽ ãå±éãããŠãããæããããŸããŠãããã瀺ããŸããaria-selectedïŒèŠçŽ ãéžæãããŠãããã瀺ããŸãã
äŸïŒ
<button aria-label="Close dialog" onclick="closeDialog()">X</button>
<div role="dialog" aria-labelledby="dialog-title">
<h2 id="dialog-title">My Dialog</h2>
<p>Dialog content here...</p>
</div>
ARIA屿§ã䜿çšããéã¯ãARIAã®äœ¿çšã«ãŒã«ã«åŸãããšãéèŠã§ãã
- ã«ãŒã«1ïŒå¿ èŠãªã»ãã³ãã£ã¯ã¹ãšåäœããã§ã«çµã¿èŸŒãŸããŠãããã€ãã£ãã®HTMLèŠçŽ ã屿§ã䜿çšã§ããå Žåã¯ãèŠçŽ ãåå©çšããŠARIAã®ããŒã«ãã¹ããŒããããããã£ã远å ããŠã¢ã¯ã»ã·ãã«ã«ããã®ã§ã¯ãªããããã䜿çšããŠãã ããã
- ã«ãŒã«2ïŒæ¬åœã«å¿ èŠãªå Žåãé€ãããã€ãã£ãã®HTMLã»ãã³ãã£ã¯ã¹ã倿Žããªãã§ãã ããã
- ã«ãŒã«3ïŒãã¹ãŠã®ã€ã³ã¿ã©ã¯ãã£ããªARIAã³ã³ãããŒã«ã¯ããŒããŒãã§äœ¿çšã§ããªããã°ãªããŸããã
- ã«ãŒã«4ïŒãã©ãŒã«ã¹å¯èœãªèŠçŽ ã«
role="presentation"ãaria-hidden="true"ã䜿çšããªãã§ãã ããã - ã«ãŒã«5ïŒARIAããŒã«ãæã€ãã¹ãŠã®èŠçŽ ã¯ãå¿ èŠãªãã¹ãŠã®å±æ§ãæããªããã°ãªããŸããã
5. è²ã®ã³ã³ãã©ã¹ã
ããã¹ããšãã®èæ¯ãšã®éã«ååãªè²ã®ã³ã³ãã©ã¹ããããããšã確èªããŠãã ãããäžååãªè²ã®ã³ã³ãã©ã¹ãã¯ãããŒããžã§ã³ãè²èŠé害ã®ãããŠãŒã¶ãŒãããã¹ããèªãã®ãå°é£ã«ããå¯èœæ§ããããŸãã
WCAGã¯ãéåžžããã¹ãã§å°ãªããšã4.5:1ã倧ããªããã¹ãïŒ18ptãŸãã¯14ptã®å€ªåïŒã§3:1ã®ã³ã³ãã©ã¹ãæ¯ãèŠæ±ããŠããŸããã«ã©ãŒã³ã³ãã©ã¹ããã§ãã«ãŒã䜿çšããŠããŠã§ããµã€ãããããã®èŠä»¶ãæºãããŠãããã確èªã§ããŸããWebAIM Contrast Checkerãªã©ãå€ãã®ç¡æãªã³ã©ã€ã³ããŒã«ãå©çšå¯èœã§ãã
äŸïŒ
/* CSS */
body {
color: #333; /* Dark gray text */
background-color: #fff; /* White background */
}
ïŒãã®äŸã®ã³ã³ãã©ã¹ãæ¯ã¯7:1ã§ãWCAGã®èŠä»¶ãæºãããŠããŸããïŒ
æ å ±ãäŒããå¯äžã®ææ®µãšããŠè²ã䜿çšããããšã¯é¿ããŠãã ãããè²èŠé害ã®ãããŠãŒã¶ãŒã¯ãç°ãªãè²ãåºå¥ã§ããªãå ŽåããããŸããããã¹ãã©ãã«ãã¢ã€ã³ã³ãªã©ã远å ã®åå³ã䜿çšããŠè²ã®æå³ãè£åŒ·ããŠãã ããã
6. ãã©ãŒã ãšã©ãã«
ãã©ãŒã èŠçŽ ã«é©åã«ã©ãã«ãä»ããããšã¯ãã¢ã¯ã»ã·ããªãã£ã«ãšã£ãŠéåžžã«éèŠã§ãã<label>èŠçŽ ã䜿çšããŠãåãã©ãŒã å
¥åã«ããã¹ãã©ãã«ãé¢é£ä»ããŠãã ããã<label>èŠçŽ ã®for屿§ã¯ã察å¿ããå
¥åèŠçŽ ã®id屿§ãšäžèŽãããå¿
èŠããããŸãã
äŸïŒ
<label for="name">Name:</label>
<input type="text" id="name" name="name">
è€éãªãã©ãŒã ã«ã€ããŠã¯ã<fieldset>ãš<legend>èŠçŽ ã䜿çšããŠé¢é£ãããã©ãŒã ã³ã³ãããŒã«ãã°ã«ãŒãåããããšãæ€èšããŠãã ãããããã«ããããŠãŒã¶ãŒã¯åã³ã³ãããŒã«ã°ã«ãŒãã®ç®çãçè§£ãããããªããŸãã
ãŠãŒã¶ãŒããã©ãŒã ã®å ¥åã§ééããç¯ããå Žåã¯ãæç¢ºã§ç°¡æœãªãšã©ãŒã¡ãã»ãŒãžãæäŸããŠãã ããããšã©ãŒã¡ãã»ãŒãžã¯å¯Ÿå¿ãããã©ãŒã ãã£ãŒã«ãã®è¿ãã«è¡šç€ºãããšã©ãŒãä¿®æ£ããæ¹æ³ã«ã€ããŠã®ã¬ã€ãã³ã¹ãæäŸããå¿ èŠããããŸãã
ã©ã®ãã©ãŒã ãã£ãŒã«ããå¿
é ã§ãããã瀺ãããã«required屿§ã䜿çšããŠãã ãããããã«ããããŠãŒã¶ãŒã誀ã£ãŠäžå®å
šãªãã©ãŒã ãéä¿¡ããã®ãé²ãããšãã§ããŸãã
7. ãã«ãã¡ãã£ã¢ã®ã¢ã¯ã»ã·ããªãã£
ãããªããªãŒãã£ãªé²é³ãªã©ã®ãã«ãã¡ãã£ã¢ã³ã³ãã³ãããé害ã®ãããŠãŒã¶ãŒã«ãšã£ãŠã¢ã¯ã»ã·ãã«ã§ããããšã確èªããŠãã ããããããªã«ã¯ãã£ãã·ã§ã³ãããªãŒãã£ãªé²é³ã«ã¯ãã©ã³ã¹ã¯ãªããïŒæåèµ·ããïŒãæäŸããŠãã ããããã£ãã·ã§ã³ã¯ãéèŠãªå¹æé³ãèæ¯ãã€ãºãå«ãããããªã§è©±ãããŠããå å®¹ãæ£ç¢ºã«æåã«èµ·ããå¿ èŠããããŸãã
ã©ã€ããããªã«ã€ããŠã¯ããªã¢ã«ã¿ã€ã ãã£ãã·ã§ã³ãµãŒãã¹ã®äœ¿çšãæ€èšããŠãã ããããããã®ãµãŒãã¹ã¯ãªã¢ã«ã¿ã€ã ã§ãã£ãã·ã§ã³ãæäŸã§ãããããèŽèŠé害ã®ãããŠãŒã¶ãŒãã³ã³ãã³ãã远ãããšãã§ããŸããå€ãã®ãããªäŒè°ãã©ãããã©ãŒã ã«ã¯ãçµã¿èŸŒã¿ã®ã©ã€ããã£ãã·ã§ã³æ©èœãæäŸãããŠããŸãã
ãããªã«ã¯é³å£°è§£èª¬ãæäŸããŠãã ãããé³å£°è§£èª¬ã¯ããããªã®èŠèŠçãªå 容ã®ãã¬ãŒã·ã§ã³ãæäŸããç»é¢äžã§äœãèµ·ãã£ãŠãããã説æããŸããé³å£°è§£èª¬ã¯ãèŠèŠé害ã®ãããŠãŒã¶ãŒã«ãšã£ãŠäžå¯æ¬ ã§ãã
åçãäžæåæ¢ãé³é調æŽãªã©ã®ãã«ãã¡ãã£ã¢ã³ã³ãããŒã«ãããŒããŒãã§ã¢ã¯ã»ã¹ã§ããããšã確èªããŠãã ããã
8. åçã³ã³ãã³ããšæŽæ°
ãŠã§ããµã€ãäžã®ã³ã³ãã³ããåçã«æŽæ°ãããå ŽåããŠãŒã¶ãŒã«å€æŽãéç¥ããããšãéèŠã§ããããã¯ãã¹ã¯ãªãŒã³ãªãŒããŒã䜿çšããŠãããŠãŒã¶ãŒã«ãšã£ãŠã¯ç¹ã«éèŠã§ãã³ã³ãã³ãã倿Žãããããšã«æ°ã¥ããªãå¯èœæ§ãããããã§ãã
ã¹ã¯ãªãŒã³ãªãŒããŒã«åçãªæŽæ°ãã¢ããŠã³ã¹ããããã«ãARIAã©ã€ããªãŒãžã§ã³ã䜿çšããŠãã ãããARIAã©ã€ããªãŒãžã§ã³ã¯ãæŽæ°ãåãåãããã«æå®ãããããŒãžé åã§ããã©ã€ããªãŒãžã§ã³ã®ã³ã³ãã³ãã倿Žããããšãã¹ã¯ãªãŒã³ãªãŒããŒã¯ãŠãŒã¶ãŒã«å€æŽãã¢ããŠã³ã¹ããŸããã©ã€ããªãŒãžã§ã³ãå®çŸ©ããã«ã¯aria-live屿§ã䜿çšããŸããaria-atomicããã³aria-relevant屿§ã䜿çšããŠãã¹ã¯ãªãŒã³ãªãŒããŒã倿Žãã©ã®ããã«ã¢ããŠã³ã¹ãããã埮調æŽã§ããŸãã
äŸïŒ
<div aria-live="polite">
<p id="status-message">Loading...</p>
</div>
<script>
// Update the status message when the data is loaded
function updateStatus(message) {
document.getElementById("status-message").textContent = message;
}
</script>
ãã®äŸã§ã¯ãaria-live="polite"屿§ã¯ãã¹ã¯ãªãŒã³ãªãŒããŒã<div>èŠçŽ ã®ã³ã³ãã³ãã®å€æŽãã¢ããŠã³ã¹ãã¹ãã§ãããããŠãŒã¶ãŒã®çŸåšã®ã¿ã¹ã¯ãäžæãã¹ãã§ã¯ãªãããšã瀺ããŠããŸããupdateStatus()颿°ã¯<p>èŠçŽ ã®ã³ã³ãã³ããæŽæ°ããããã«ããã¹ã¯ãªãŒã³ãªãŒããŒãæ°ããã¹ããŒã¿ã¹ã¡ãã»ãŒãžãã¢ããŠã³ã¹ããããããªã¬ãŒãããŸãã
9. ã¢ã¯ã»ã·ããªãã£ã®ãã¹ã
ãŠã§ããµã€ãã®ã¢ã¯ã»ã·ããªãã£ã宿çã«ãã¹ãããŠãåé¡ãç¹å®ãä¿®æ£ããŠãã ãããã¢ã¯ã»ã·ããªãã£ããã¹ãããããã«äœ¿çšã§ããããŸããŸãªããŒã«ããã¯ããã¯ããããŸãã
- èªåã¢ã¯ã»ã·ããªãã£ãã§ãã«ãŒïŒèªåã¢ã¯ã»ã·ããªãã£ãã§ãã«ãŒã䜿çšããŠããŠã§ããµã€ãã®äžè¬çãªã¢ã¯ã»ã·ããªãã£ãšã©ãŒãã¹ãã£ã³ããŸãã人æ°ã®ããŒã«ã«ã¯ãWAVEãA CheckerãGoogle Lighthouseãªã©ããããŸãããããã®ããŒã«ã¯ã代æ¿ããã¹ãã®æ¬ èœãäœãè²ã®ã³ã³ãã©ã¹ããäžé©åãªèŠåºãæ§é ãªã©ã®åé¡ãç¹å®ã§ããŸãããã ããèªåããŒã«ã¯ã¢ã¯ã»ã·ããªãã£ã®åé¡ã®äžéšããæ€åºã§ããŸããã
- æåãã¹ãïŒããŒããŒããšã¹ã¯ãªãŒã³ãªãŒããŒã䜿çšããŠãŠã§ããµã€ããæåã§ãã¹ãããŸããããã«ããããã©ãŒã«ã¹é åºã®åé¡ãäžæçãªããã²ãŒã·ã§ã³ãªã©ãèªåããŒã«ã§ã¯æ€åºã§ããªãåé¡ãç¹å®ã§ããŸãã人æ°ã®ã¹ã¯ãªãŒã³ãªãŒããŒã«ã¯ãNVDAïŒç¡æã»ãªãŒãã³ãœãŒã¹ïŒãJAWSïŒåçšïŒãVoiceOverïŒmacOSããã³iOSã«å èµïŒãªã©ããããŸãã
- ãŠãŒã¶ãŒãã¹ãïŒãã¹ãããã»ã¹ã«é害ã®ãããŠãŒã¶ãŒãåå ãããŠãã ãããããŸããŸãªçš®é¡ã®é害ãæã€ãŠãŒã¶ãŒãããã£ãŒãããã¯ãåŸãŠããŠã§ããµã€ãããã¹ãŠã®äººã«ãšã£ãŠã¢ã¯ã»ã·ãã«ã§ããããšã確èªããŸãããŠãŒã¶ãŒãã¹ãã¯ããŠã§ããµã€ãã®å®éã®ã¢ã¯ã»ã·ããªãã£ã«é¢ãã貎éãªæŽå¯ãæäŸã§ããŸãã
ãã©ãŠã¶ãè¶ ããã¢ã¯ã»ã·ããªãã£
ãã®ã¬ã€ãã¯äž»ã«ãã©ãŠã¶ã®ã³ã³ããã¹ãã«ããããŠã§ãã¢ã¯ã»ã·ããªãã£ã«çŠç¹ãåœãŠãŠããŸãããã¢ã¯ã»ã·ããªãã£ã¯ãŠã§ããè¶ ããŠåºããããšãèŠããŠããããšãéèŠã§ãã以äžã®ãããªä»ã®ããžã¿ã«é åã§ãã¢ã¯ã»ã·ããªãã£ãèæ ®ããŠãã ããã
- ã¢ãã€ã«ã¢ããªïŒiOSãAndroidåãã®ã¢ãã€ã«ã¢ããªã±ãŒã·ã§ã³ãéçºããéã«ããåæ§ã®ã¢ã¯ã»ã·ããªãã£ååãé©çšããŸãããªãã¬ãŒãã£ã³ã°ã·ã¹ãã ãæäŸãããã€ãã£ãã®ã¢ã¯ã»ã·ããªãã£æ©èœã䜿çšããŠãã ããã
- ãã¹ã¯ãããã¢ããªã±ãŒã·ã§ã³ïŒãã¹ã¯ãããã¢ããªã±ãŒã·ã§ã³ãããŒããŒãã§ããã²ãŒãå¯èœã§ãããååãªã³ã³ãã©ã¹ããæäŸããã¹ã¯ãªãŒã³ãªãŒããŒãšäºææ§ãããããšã確èªããŠãã ããã
- ããã¥ã¡ã³ãïŒPDFãWordãªã©ïŒïŒé©åãªèŠåºãæ§é ãç»åã®ä»£æ¿ããã¹ãã䜿çšããååãªã³ã³ãã©ã¹ãã確ä¿ããããšã§ãã¢ã¯ã»ã·ãã«ãªããã¥ã¡ã³ããäœæããŸãã
- ã¡ãŒã«ïŒã»ãã³ãã£ãã¯HTMLã䜿çšããç»åã®ä»£æ¿ããã¹ããæäŸããæç¢ºã§ç°¡æœãªèšèªã䜿çšããããšã§ãã¢ã¯ã»ã·ãã«ãªã¡ãŒã«ããã¶ã€ã³ããŸãã
ãŸãšã
ãŠã§ãã¢ã¯ã»ã·ããªãã£ã¯ãããã³ããšã³ãéçºã®äžå¯æ¬ ãªåŽé¢ã§ãããã®ã¬ã€ãã§æŠèª¬ãããååãšãã¯ããã¯ã«åŸãããšã§ãèœåã«é¢ããããã¹ãŠã®ãŠãŒã¶ãŒã®ããã«ãã€ã³ã¯ã«ãŒã·ãã§ã¢ã¯ã»ã·ãã«ãªãŠã§ãäœéšãåµé ã§ããŸããã¢ã¯ã»ã·ããªãã£ã¯ç¶ç¶çãªããã»ã¹ã§ããããšãå¿ããªãã§ãã ããããŠã§ããµã€ãã宿çã«ãã¹ãããé害ã®ãããŠãŒã¶ãŒãããã£ãŒãããã¯ãåéããŠãæéãšãšãã«ã¢ã¯ã»ã·ãã«ã§ããç¶ããããšã確èªããŠãã ãããã¢ã¯ã»ã·ããªãã£ãåªå ããããšã§ããŠã§ãããã¹ãŠã®äººã«ãšã£ãŠããã€ã³ã¯ã«ãŒã·ãã§å ¬å¹³ãªå Žæã«ããããšãã§ããŸãã
ã¢ã¯ã»ã·ããªãã£ãåãå ¥ããããšã§ãããªãã¯åã«èŠå¶ãéµå®ããŠããã ãã§ã¯ãããŸãããããªãã¯ãã¹ãŠã®äººã«ãšã£ãŠããè¯ããŠã§ããæ§ç¯ãããªãŒããæ¡å€§ããã°ããŒãã«ãªèŠæš¡ã§ãã©ã³ãè©äŸ¡ã匷åããŠããã®ã§ãã